package main

// 自己写的代码。一遍过。
// 直接模拟掉落过程，一颗一颗的处理即可
func findBall(grid [][]int) []int {
	m, n := len(grid), len(grid[0])
	answer := make([]int, n)
	for i := 0; i < n; i++ {
		col := i
		for j := 0; j < m; j++ {
			sign := grid[j][col]
			if sign == 1 {
				// 判断是否撞墙或者 呈V型
				if col+1 == n || grid[j][col+1] == -1 {
					answer[i] = -1
					break
				}
				// 小球col 右移
				col += 1
			} else { // sign = -1
				if col-1 < 0 || grid[j][col-1] == 1 {
					answer[i] = -1
					break
				}
				// 否则小球左移
				col -= 1
			}
		}
		if answer[i] == 0 {
			answer[i] = col
		}
	}
	return answer
}
